#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2024/2/8 16:20
# @Author : 闫峰
# @File    : get_active_source_id.py


from common.setting import ensure_path_sep
from utils.mysqlUtils.db_pool import Database

# 连接数据库，使用配置文件中的信息
common_db = Database(ensure_path_sep("\\config\\shopeev2_config.yaml.bak"), "HWY-ZH-GZ-RDS-JavaCommon")
class Common:

    @staticmethod
    def get_active_source_id_list(order_source_type):
        """
        获取指定订单源类型下激活状态的源ID列表。

        参数:
        order_source_type - 字符串类型，指定的订单源类型。

        返回值:
        source_id_list - 列表类型，包含指定订单源类型下所有激活状态的源的ID。
        """


        # 构造SQL查询语句，用于获取激活状态且未被删除的特定类型订单源ID
        get_source_id_list = """
        SELECT a.id
        FROM `zhcxkj-center-data`.`rb_order_source` a
        LEFT JOIN  `zhcxkj-center-data`.rb_order_source_ebay_amazon_api  b ON a.id=b.order_source_id
        WHERE a.is_active=1 AND a.is_delete=0 AND b.is_active=1
            AND a.order_source_type=%s
        """

        # 执行SQL查询，并将结果转换为ID列表
        source_id_list = common_db.fetch_all_tuple(get_source_id_list, (order_source_type,))
        source_id_list = list(map(lambda x: x[0], source_id_list))  # 提取并转换查询结果中的ID字段

        return source_id_list

    @staticmethod
    def get_shopee_nochina_source_id_list():
        common_db = Database(ensure_path_sep("\\config\\shopeev2_config.yaml.bak"), "HWY-ZH-GZ-RDS-JavaCommon")

        # 构造查询源数据ID列表的SQL语句
        get_source_id_list = """
            SELECT a.id,a.order_source_country
            FROM `zhcxkj-center-data`.`rb_order_source` a
            LEFT JOIN  `zhcxkj-center-data`.rb_order_source_ebay_amazon_api  b ON a.id=b.order_source_id
            WHERE a.is_active=1 AND a.is_delete=0 AND b.is_active=1
                AND a.order_source_type=97
        				AND a.order_source_country!="CN"
            """

        # 执行SQL查询，并获取结果列表
        source_id_list = common_db.fetch_all_tuple(get_source_id_list, ())
        return source_id_list



    @staticmethod
    def get_active_source_id_list_walmart(order_source_type,is_wfs):
        """
        获取指定订单源类型下激活状态的源ID列表。

        参数:
        order_source_type - 字符串类型，指定的订单源类型。

        返回值:
        source_id_list - 列表类型，包含指定订单源类型下所有激活状态的源的ID。
        """


        # 构造SQL查询语句，用于获取激活状态且未被删除的特定类型订单源ID
        field = "直发%"
        if is_wfs:
            get_source_id_list = """
            SELECT a.id
            FROM `zhcxkj-center-data`.`rb_order_source` a
            LEFT JOIN  `zhcxkj-center-data`.rb_order_source_ebay_amazon_api  b ON a.id=b.order_source_id
            WHERE a.is_active=1 AND a.is_delete=0 AND b.is_active=1
                AND a.order_source_type=%s
                and a.order_source_name  not like %s
            """
        else:
            get_source_id_list = """
            SELECT a.id
            FROM `zhcxkj-center-data`.`rb_order_source` a
            LEFT JOIN  `zhcxkj-center-data`.rb_order_source_ebay_amazon_api  b ON a.id=b.order_source_id
            WHERE a.is_active=1 AND a.is_delete=0 AND b.is_active=1
                AND a.order_source_type=%s
                and a.order_source_name like %s
            """
        # 执行SQL查询，并将结果转换为ID列表
        source_id_list = common_db.fetch_all_tuple(get_source_id_list, (order_source_type,field))
        source_id_list = list(map(lambda x: x[0], source_id_list))  # 提取并转换查询结果中的ID字段

        return source_id_list